/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modeloprediccion;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import motorprediccion.*;

/**
 *
 * @author diego
 */
public abstract class Modelo {
    ArrayList<DatoProcesado> predic;
    ArrayList<Recorrido> recorridos;
    HashMap<Integer, Colectivo> colectivos;

    public abstract int estimarTiempos(ArrayList<DatoPosicional> posiciones);
    public abstract int obtenerPrediccion(Parada origen, Parada destino);
    public abstract void procesarDatos(ArrayList<DatoProcesado> nuevosDatos) throws SQLException;

    public Modelo() {
        this.colectivos = new HashMap<Integer,Colectivo>();
        this.recorridos = new ArrayList<Recorrido>();
    }

    public void setRecorridos(ArrayList<Recorrido> recorridos) {
        this.recorridos = recorridos;
    }

    public Colectivo getColectivos(int id) {
        if (this.colectivos.isEmpty())
            return null;
        else
            return this.colectivos.get(id);
//        int i=0;
//        do {
//            i++;
//        } while (i< colectivos.size()||colectivos.get(i).getIdColectivo() == id);
//        if (i == colectivos.size())
//            return null;
//        else
//            return colectivos.get(i);
    }

    public Recorrido getRecorridos(int id) {
        int i=0;
        do {
            i++;
        } while (i< recorridos.size()||recorridos.get(i).getId() == id);
        if (i == recorridos.size())
            return null;
        else
            return recorridos.get(i);
    }
    
    public void agregarRecorrido(Recorrido linea){
        recorridos.add(linea);
    }
    
    public void agregarColectivo(Colectivo bus){
        colectivos.put(bus.getIdColectivo(), bus);
    }
}
